package com.acg.auth.service;

import com.acg.auth.pojo.SysMenu;
import com.acg.auth.vo.AssignMenuVo;
import com.acg.auth.vo.RouterVo;
import com.acg.exception.ACGException;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author acg
 * @since 2025-08-08
 */
public interface SysMenuService extends IService<SysMenu> {

    List<SysMenu> getAllMenu();

    boolean deleteById(Long id) throws ACGException;

    List<SysMenu> findSysMenuByRoleId(Long roleId);

    @Transactional
    void doAssign(AssignMenuVo assignMenuVo);

    List<RouterVo> findUserMenuList(Long userId);

    List<String> findUserPermsList(Long userId);
}
